package com.fancy.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fancy.user.entity.UserMembership;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;

/**
 * 用户会员信息表 Mapper 接口
 */
@Mapper
public interface UserMembershipMapper extends BaseMapper<UserMembership> {

    /**
     * 获取用户当前有效的会员信息
     * @param userId 用户ID
     * @return 用户会员信息
     */
    UserMembership getCurrentMembership(@Param("userId") Long userId);

    /**
     * 更新会员状态为过期
     * @param userId 用户ID
     * @return 影响行数
     */
    int expireUserMembership(@Param("userId") Long userId);

    /**
     * 检查并更新过期的会员状态
     * @param currentTime 当前时间
     * @return 影响行数
     */
    int updateExpiredMemberships(@Param("currentTime") LocalDateTime currentTime);
}
